package com.cn.sys.main.util;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

import com.cn.sys.main.entity.SysModule;

public class MenuUtil {

	public static synchronized List<SysModule> getFormatModule(List<SysModule> list) {
		List<SysModule> parentList = new ArrayList<SysModule>();
		for (SysModule sysModule : list) {
			if (sysModule.getParentId() == null) {
				parentList.add(sysModule);
				//list.remove(sysModule);
			}
		}
		sortModuleList(parentList);
		List<SysModule> result = new ArrayList<SysModule>();
		result.addAll(parentList);
		for (int i=0,len=parentList.size();i<len;i++) {
			List<SysModule> childList = new ArrayList<SysModule>();
			for (SysModule childModule : list) {
				if(parentList.get(i).getId().equals(childModule.getParentId())){
					childList.add(childModule);
					//list.remove(childModule);
				}
			}
			sortModuleList(childList);
			result.addAll(childList);
		}
		return result;
	}

	public static void sortModuleList(List<SysModule> list) {
		Collections.sort(list, new Comparator<SysModule>() {
			public int compare(SysModule m1, SysModule m2) {
				if (m1.getOrderIndex() > m2.getOrderIndex()) {
					return 1;
				} else {
					return 0;
				}
			}
		});
	}
}
